package it.unipd.dei.bd.icineasti.database;

import it.unipd.dei.bd.icineasti.resource.Utente;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Crea un nuovo utente nel db.
 * 
 * @author Bardelle Renzo
 * @version 1.00
 */

public class CreateUtenteDatabase {

	private static final String STATEMENT = "INSERT INTO utente (idutente, email, password, cognome, nome, codfiscale, cartacredito, ultimoaccesso, attivo, newsletter, amministrativo, verificato) VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

	private final Connection con;
	private final Utente utente;

	public CreateUtenteDatabase(Connection con, Utente utente) {
		this.con = con;
		this.utente = utente;
	}

	public void createUtente() throws SQLException {

		PreparedStatement pstmt = null;

		try {
			pstmt = con.prepareStatement(STATEMENT);
			
			pstmt.setString(1, utente.getEmail());
			pstmt.setString(2, utente.getPassword());
			pstmt.setString(3, utente.getCognome());
			pstmt.setString(4, utente.getNome());
			pstmt.setString(5, utente.getCodfiscale());
			pstmt.setString(6, utente.getCartacredito());
			pstmt.setTimestamp(7, utente.getUltimoaccesso()); 
			pstmt.setBoolean(8, utente.getAttivo());
			pstmt.setBoolean(9, utente.getNewsletter());
			pstmt.setBoolean(10, utente.getAmministrativo());
			pstmt.setBoolean(11, utente.getVerificato());
			
			pstmt.execute();

		} finally {
			if (pstmt != null) {
				pstmt.close();
			}

			con.close();
		}

	}
}
